package com.aplana.ccsd.service;

import info.magnolia.module.blossom.dialog.TabBuilder;
import info.magnolia.module.templatingkit.dam.Asset;

import java.util.List;

import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.ValueFormatException;

import com.aplana.ccsd.model.Tag;

public interface TemplatingService {

	/**
	 * Получить HTML текст
	 */
	String getNodePropertyAsHtml(Node node, String propName);

	/**
	 * Получить картинку
	 */
	Asset getNodePropertyAsImage(Node node, String propName);

	/**
	 * Получить множественное значение справочника хранящиеся в узле
	 */
	List<Node> getNodePropertyAsDataTypes(Node node, String propName)
			throws ValueFormatException, IllegalStateException,
			RepositoryException;
	
	/**
	 * Получить множественное значение справочника хранящиеся в узле как список тегов
	 */
	List<Tag> getNodePropertyAsTags(Node node, String propName)
			throws ValueFormatException, IllegalStateException,
			RepositoryException;

	/**
	 * Получить компоненты Area
	 */
	List<Node> getAreaComponents(Node areaNode) throws RepositoryException;

	/**
	 * Добавить контрол выбора технологии
	 */
	void addTechnologyMultiSelectControl(TabBuilder tab, String name,
			String label, String description) throws RepositoryException;

	/**
	 * Добавить контрол выбора отрасли
	 */
	void addIndustryMultiSelectControl(TabBuilder tab, String name,
			String label, String description) throws RepositoryException;

}
